package com.yundahh.u8c.enums;

import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonValue;

// 部门属性枚举

/**
 * 1-其他部门
 * 2-采购
 * 3-销售
 * 4-采购销售
 * 5-工厂
 * 6-基本生产车间
 * 官方给的数据库结构以及接口说明都不对，以此为准
 */
public enum DeptAttr {
    OTHER(1, "其他部门"),
    PURCHASE(2, "采购部门"),
    SALES(3, "销售部门"),
    PURCHASE_SALES(4, "采销部门"),
    FACTORY(5, "工厂"),
    BASIC_WORKSHOP(6, "基本生产车间"),
    AUXILIARY_WORKSHOP(7, "辅助生产车间");

    private final int code;
    private final String description;

    DeptAttr(int code, String description) {
        this.code = code;
        this.description = description;
    }

    // 序列化时使用 code 值
    @JsonValue
    public int getCode() {
        return code;
    }

    // 反序列化时根据 code 找到对应枚举
    @JsonCreator
    public static DeptAttr fromCode(int code) {
        for (DeptAttr deptAttr : values()) {
            if (deptAttr.code == code) {
                return deptAttr;
            }
        }
        throw new IllegalArgumentException("无效的部门属性代码: " + code);
    }

    public String getDescription() {
        return description;
    }
}
